<?php
/*设定字符集
header('Content-Type:text/html;charset=utf-8');
	//获取注册用户的信息
	echo '<h2>接收到新用户注册！</h2>';
	echo '<p>用户名：'.$_POST['username'].'</p>';
	echo '<p>密码：'.$_POST['password'].'</p>';
	echo '<p>邮箱：'.$_POST['email'].'</p>';
	echo '<p>IP地址：'.$_SERVER['REMOTE_ADDR'].'</p>';
	echo '<p>浏览器环境：'.$_SERVER['HTTP_USER_AGENT'].'</p>';
	echo '<p>请求来源：'.$_SERVER['HTTP_REFERER'].'</p>';
//接收需要处理的表单字段
$username = $_POST['username'];
$password = $_POST['password'];
$email = $_POST['email'];

//连接数据库，设置字符集，选择数据库
$link=mysqli_connect('localhost','root','','itcast');
mysqli_query($link,'set names utf8');
mysqli_query($link,'use `itcast`');
//防止SQL注入
$username = mysqli_real_escape_string($link,$username);
$email = mysqli_real_escape_string($link,$email);

//判断用户名是否存在
$sql = "select `id` from `user` where `username`='$username'";
$rst = mysqli_query($link,$sql);
if(mysqli_fetch_row($rst)){
    die('用户名已经存在，请换个用户名。');
}
//使用MD5增强密码安全性
$password = md5($password);
//拼接SQL语句
$sql = "insert into `user` (`username`,`password`,`email`) values ('$username','$password','$email')";
//执行SQL语句
$rst = mysqli_query($link,$sql);
//输出执行的SQL语句和执行结果，便于调试程序
echo "SQL语句：$sql<br>";
if($rst){
    echo '执行成功';
}else{
    echo '执行失败：'.mysqli_error($link);
}
*/
//引入表单验证函数库
require 'check_form.lib.php';

//假设PHP程序收到了用户注册表单
//演示正确的输入
$data = array(
    'username' => '小明',
    'password' => '123456',
    'email' => 'xiaoming@123.com',
);
//演示错误的输入
$data = array(
    'username' => '1',
    'password' => '1',
    'email' => 'xiaomingcom',
);
//为每个字段定义不同的验证函数
$validate = array(
    'username' => 'checkUsername',
    'password' => 'checkPassword',
    'email' => 'checkEmail',
);
//$error数组保存验证失败时的错误信息
$error = array();
//循环验证每个字段，保存错误信息
foreach($validate as $k=>$v){
    //运用可变函数，实现不同字段调用不同函数
    $result = $v($data[$k]);
    if($result !== true){
        $error[] = $result;
    }
}
//如果$error数组为空，说明没有错误
if(empty($error)){
    die('表单验证成功');
}
//运行到此处说明表单验证失败
require 'register_error_html.php';
